package cn.qingfeng.demo.transaction.springboot.common.mapper;

import cn.qingfeng.demo.transaction.springboot.common.entity.User;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;

//@Mapper与@Repository的作用类似，都是帮助接口自动生成实现类。
@Mapper//这个注解是必须的
@Repository(value = "userMapperTransaction")//这个注解不是必须的。去掉之后serviceImpl中的自动注入会报红线，但是不影响运行。加上之后自动注入不会再报红线，也不影响运行。
public interface UserMapper {
    @Select("select * from user where id=#{id,jdbcType=INTEGER}")
    User selectById(@Param("id") int id);

    @Insert("insert into user (name,address) values(#{user.name},#{user.address})")
    int add(@Param("user") User user);

    @Update("update user set " +
            "name=#{user.name,jdbcType=VARCHAR}, " +
            "address=#{user.address,jdbcType=VARCHAR} " +
            "where id=#{user.id,jdbcType=INTEGER} ")
    int update(@Param("user") User user);
}
